Power and thermal management are becoming more challenging than ever before in all segments of computer-based systems. While in the server domain, the cost of electricity drives the need for low power systems, in mobile systems battery life and thermal limitations make these issues relevant. Optimizing a system for maximum performance at minimum power consumption is usually done using the operating system (OS) to control hardware elements. Most modern OS's use the Advanced Configuration and Power Interface (ACPI) standard, e.g., Rev. 3.0b, published Oct. 10, 2006, for optimizing the system in these areas. An ACPI implementation allows a core to be in different power-saving states (also termed low power or idle states) generally referred to as so-called C1 to Cn states. Similar socket C-states exist for package-level power savings.
When a core is active, it runs at a so-called C0 state, and when the core is idle, it may be placed in a core low power state, a so-called core non-zero C-state. The core C1 state represents the low power state that has the least power savings but can be switched on and off almost immediately, while an extended deep-low power state (e.g., C3) represents a power state where the static power consumption is negligible, but the time to enter into this state and respond to activity (e.g., back to C0) is quite long.
As core and socket sleep states get more aggressive in saving power, one impact is an increase in the time required for the system to respond to bursty asynchronous events such as network traffic. It is anticipated that systems such as servers will have socket wakeup latencies (e.g., from C6 to C0) on the order of 75 microseconds (μs). In addition to a direct impact to latency for the core to wakeup, there is an impact to throughput when there are multiple cores potentially entering sleep states. Systems with aggressive power down algorithms can significantly impact throughput as the cores drop off to deep sleep states and then need to be awakened as traffic arrives. In some cases, about a 70% reduction in throughput could occur. For example, in a multiprocessor 16 threaded case, a line rate of approximately 9 gigabits per second (Gbps) (assuming no sleep states enabled) can exist. However, as increasing numbers of threads drop off to sleep states, sustained bandwidth is reduced to less than 2 Gbps, using current mechanisms.
Power consumption is often traded off for system performance. This is because it is difficult or impossible for various system components to predict the appropriate time to drop to a low power state and for what duration. Network, storage and other input/output (I/O) devices can require system or central processing unit (CPU) attention at any moment, forcing system components to stay at an excessively high power level to anticipate any I/O event, thus causing the trade off.